home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DDJMAG
/
DDJ9105.ZIP
/
CO_NUM.ASC
< prev
next >
Wrap
Text File
|
1991-04-08
|
2KB
|
78 lines
_GETTING NUMERIC COPROCESSORS UP TO SPEED_
by John H. Letcher
Example 1:
(a)
SUBROUTINE ABC(X,Y,Z)
Z=X+Y
RETURN
END
(b)
ARGLOC DW OFFSET X ; argument 1
DW SEG X
DW OFFSET Y ; argument 2
DW SEG Y
DW OFFSET Z ; argument 3
DW SEG Z
(c)
MOV AX,SEG ARGLOC
MOV ES,AX
MOV BX,OFFSET ARGLOC
CALL ABC
Example 2:
TITLE ABC
CODE SEGMENT 'CODE'
; SUBROUTINE ABC(X,Y,Z)
ABC PROC FAR
PUBLIC ABC
LDS SI,ES:[BX] ; NOW DS:SI POINTS TO X
FLD DWORD PTR [SI] ; LOADS THE VALUE OF X
LDS SI,ES:4[BX] ; NOW DS:SI POINTS TO Y
FADD DWORD PTR [SI] ; ADDS Y TO X
LDS SI,ES:8[BX] ; NOW DS:SI POINTS TO Z
FSTP DWORD PTR [SI] ; STORES VALUE INTO Z
RET
ABC ENDP
CODE ENDS
END
Example 3:
INCLUDE FCODE.INC
TITLE ABC
CODE SEGMENT 'CODE'
; SUBROUTINE ABC(X,Y,Z)
.386
ABC PROC FAR
mov eax,0d000h ; EMC
mov fs,eax ; EMC
PUBLIC ABC
LDS SI,ES:[BX] ; NOW DS:SI POINTS TO X
; FLD DWORD PTR [SI] ; LOADS THE VALUE OF X
mov eax,DWORD PTR [SI] ; EMC
mov DWORD PTR FS:mflds,eax ; EMC
LDS SI,ES:4[BX] ; NOW DS:SI POINTS TO Y
; FADD DWORD PTR [SI] ; ADDS Y TO X
mov eax,DWORD PTR [SI] ; EMC
mov DWORD PTR FS:mfadds,eax ; EMC
LDS SI,ES:8[BX] ; NOW DS:SI POINTS TO Z
; FSTP DWORD PTR [SI] ; STORES VALUE INTO Z
mov eax,DWORD PTR FS:mfstps ; EMC
mov DWORD PTR [SI],eax ; EMC
RET
ABC ENDP
CODE ENDS
END